# -*- coding: utf-8 -*-
# @Time : 2021/10/29 16:04
# @Author : Ming
# @FileName: RNNCell.py
# @Software: PyCharm
import torch

# 自定义变量
batch_size = 1      #批量数
seq_len = 3         #序列长度，也就是有多少个序列，x1,x2,x3
input_size = 4      #输入张量（向量）的维度
hidden_size = 2     #中间隐层张量的维度

# RNN核心  需要两个参数，输入张量的维度和隐层张量的维度
cell = torch.nn.RNNCell(input_size=input_size, hidden_size=hidden_size)

dataset = torch.randn(seq_len, batch_size, input_size)
# 设置全0初始隐层
hidden = torch.zeros(batch_size, hidden_size)

# 循环开始
for idx, input in enumerate(dataset): #按照seq_len依次获取输入的序列
    print('=' * 20, idx, '=' *20)
    print('Input size', input.shape)

    # 根据输入序列和hidden得到新的hidden
    hidden = cell(input, hidden)

    print('Output size', hidden.shape)
    print(hidden)











